home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok10.lha / FeigenBaum / FeigenBaum.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  70 lines

  1. MODULE Feigenbaum;
  2.  
  3. FROM SYSTEM    IMPORT FFP, ADR;
  4.  
  5. FROM Arts      IMPORT TermProcedure, Assert;
  6.  
  7. FROM Graphics  IMPORT ViewModes, ViewModeSet, SetAPen, SetDrMd, WritePixel,
  8.                       DrawModeSet, DrawModes, RastPortPtr, jam1;
  9.  
  10. FROM Intuition IMPORT NewScreen, OpenScreen, ScreenPtr, CloseScreen,
  11.                       customScreen;
  12.  
  13. VAR
  14.   NuScreen: NewScreen;
  15.   Screen: ScreenPtr;
  16.   a,x: FFP;
  17.   i,j: CARDINAL;
  18.   rp: RastPortPtr;
  19.   Ciapra [0BFE001H]: SET OF (s0,s1,s2,s3,s4,s5,lmb);
  20.  
  21. (*------  CleanUp:  ------*)
  22.  
  23. PROCEDURE CleanUp();
  24.  
  25. BEGIN
  26.   IF Screen#NIL THEN CloseScreen(Screen) END;
  27. END CleanUp;
  28.  
  29. (*------  MAIN:  ------*)
  30.  
  31. BEGIN
  32. (*------  init:  ------*)
  33.   Screen := NIL;
  34.   TermProcedure(CleanUp);
  35.   WITH NuScreen DO
  36.     leftEdge := 0;
  37.     topEdge  := 0;
  38.     width    := 640;
  39.     height   := 512;
  40.     depth    := 1;
  41.     detailPen:= 0;
  42.     blockPen := 1;
  43.     viewModes:= ViewModeSet{hires};
  44.     type     := customScreen;
  45.     font     := NIL;
  46.     defaultTitle := ADR("Feigenbaum   1988 by F. Siebert");
  47.     gadgets  := NIL;
  48.     customBitMap := NIL;
  49.   END;
  50.   Screen := OpenScreen(NuScreen);
  51.   Assert(Screen#NIL,ADR("OpenScreen() failed!"));
  52.   rp := ADR(Screen^.rastPort);
  53.   SetAPen(rp,1);
  54.   SetDrMd(rp,jam1);
  55. (*------  draw:  ------*)
  56.   a := 2.8; i:=0;
  57.   WHILE (i<640) AND (a<4.0) DO
  58.     x := 0.5;
  59.     FOR j:=0 TO 150 DO x := a*x*(1.0-x) END;
  60.     FOR j:=0 TO 100 DO
  61.       x := a*x*(1.0-x);
  62.       IF WritePixel(rp,i,11+INTEGER(250.0*x))=0 THEN END;
  63.     END;
  64.     a := a + 0.001875;
  65.     INC(i);
  66.   END;
  67. (*------  Warten:  ------*)
  68.   WHILE lmb IN Ciapra DO END;
  69. END Feigenbaum.
  70.